const API = require('../../../utils/api');
Page({
  data: {
    //签到类型
    signTypes: [
      { id: '00', name: "普通签到" },
      { id: '01', name: "二维码签到" },
      { id: '02', name: "位置签到" },
      // { id: 4, name: "人脸识别签到" }
    ],
    signTypeIndex:0,//签到类型默认类型
    today: '',           // 今天日期
    maxDate: '',         // 最大可选日期
    formData: {          // 表单数据对象
      signTitle: '',         // 签到标题
      signType:'00',
      signAddress:'',    //签到地点
      location: {        // 签到地点坐标
        name: '',
        address: '',
        latitude: null,
        longitude: null
      },
      time: '',          // 签到时间
      date: '',          // 签到日期
      signRemark: '',   // 签到说明
      range: 200         // 签到范围(米)
    }
  },

  onLoad() {
    // 初始化日期选择范围
    const today = new Date();
    const maxDate = new Date();
    maxDate.setMonth(today.getMonth() + 3); // 最大可选3个月后
    this.setData({
      today: this.formatDate(today),
      maxDate: this.formatDate(maxDate)
    });
  },
  handleTypeChange(e) {
    const index = e.detail.value;
    const selectedType = this.data.signTypes[index];
    console.log(selectedType)
    console.log(index)
    this.setData({
      signTypeIndex: index,
      'formData.signType': selectedType.id
    });
  },
  // 格式化日期为YYYY-MM-DD
  formatDate(date) {
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    return `${year}-${month}-${day}`;
  },

  // 统一处理输入事件
  handleInput(e) {
    console.log('handleInput===============')
    const field = e.currentTarget.dataset.field;
    this.setData({
      [`formData.${field}`]: e.detail.value
    });
  },

  // 选择地点
  chooseLocation() {
    wx.chooseLocation({
      success: (res) => {
        this.setData({
          'formData.location': {
            name: res.name,
            address: res.address,
            latitude: res.latitude,
            longitude: res.longitude
          }
        });
      },
      fail: (err) => {
        console.error('选择地点失败:', err);
        wx.showToast({
          title: '选择地点失败',
          icon: 'none'
        });
      }
    });
  },

  // 处理时间选择
  handleTimeChange(e) {
    this.setData({
      'formData.time': e.detail.value
    });
  },

  // 处理日期选择
  handleDateChange(e) {
    this.setData({
      'formData.date': e.detail.value
    });
  },

  // 处理范围变化
  handleRangeChange(e) {
    this.setData({
      'formData.range': e.detail.value
    });
  },

  // 提交表单
 async handleSubmit(e) {
    const { signTitle,signType,signAddress, location, time, date, range } = this.data.formData;
    console.log(this.data.formData)
    // 表单验证
    if (!signTitle) {
      wx.showToast({ title: '请填写签到标题', icon: 'none' });
      return;
    }
    if(signType==='02'){
      if (!location.name) {
        wx.showToast({ title: '请选择签到地点', icon: 'none' });
        return;
      }
    }else{
      if (!signAddress) {
        wx.showToast({ title: '请选择签到地点', icon: 'none' });
        return;
      }
    }
    if (!date) {
      wx.showToast({ title: '请选择签到日期', icon: 'none' });
      return;
    }
    if (!time) {
      wx.showToast({ title: '请选择签到时间', icon: 'none' });
      return;
    }
    // 添加创建时间
    const submitData = {
      ...this.data.formData,
      startTime: new Date().getTime(),
      endTime:this.data.formData.date + ' ' + this.data.formData.time,
      signStatus:e.currentTarget.dataset.type
    };
    // 这里应该调用API提交数据到服务器
    console.log('提交的签到数据:', submitData);
    await API.signAdd(submitData)
    // 模拟提交成功
    wx.showToast({
      title: '发布成功',
      icon: 'success',
      duration: 1000,
      success: () => {
      setTimeout(() => {
          wx.navigateBack(); // 返回上一页
        }, 1000);
      }
    });
  }
});